定義 一個變量 意味著告訴編譯器變量存在哪裏以及佔了多少儲存空間。
變量指定一種數據類型,可以包含一個或多個該類型的變量。
type variable_list;
ex.
int i, j, k;
char c, ch;
float f, salary;
double d;
變量可以在聲明(declaration)時初始化
type variable_name = value;
ex.
extern int d = 3, f = 5;    // declaration of d and f.
int d = 3, f = 5;           // definition and initializing d and f.
byte z = 22;                // definition and initializes z.
char x = 'x';               // the variable x has the value 'x'.
對於沒有初始化的定義,具有靜態儲存持續時間(static storage duration)的變量為 NULL,而其他變量的初始值則為未定義(undefined)。
變量聲明:向編譯器保證存在有一個具有一定類型及名稱的變量,以便編譯器進一步編譯,而無需提供該變量的完整訊息。
變量聲明 只有在編譯時才有意義,編譯器在程序鏈接時才需要實際的聲明。
在使用多個文件時而只在其中一個文件定義變數時,變量聲明很有用。可以在任何地方使用extern聲明變量。
雖然可以聲明一個變量多次,但它只會被定義一次。
#import <Foundation/Foundation.h>
// 聲明變量
extern int a, b;
extern int c;
extern float f;
int main () {
  // 定義變量
  int a, b;
  int c;
  float f;
 
  // 初始化
  a = 10;
  b = 20;
  
  c = a + b;
  NSLog(@"value of c : %d \n", c);
  f = 70.0/3.0;
  NSLog(@"value of f : %f \n", f);
 
  return 0;
}
相同的概念可以用在 function 聲明,在聲明時提供名稱,實際定義可以在任何地方拿到。
// 聲明function
int func(void);
int main() {
   // function call
   int i = func();
}
// 定義function
int func() {
   return 0;
}
常量是指為固定值,在執行過程中不會改變。這固定的值也被稱為文字(literals)。
常量可以是任何基本的類型,ex. integer, floating, character, string literal, enumeration。
整數文字可以是十進,八進或十六進位的常量。
前綴指定基本或基數:0x或0X為十六進位,八進位為0。
整數文字也可以有”一個“後綴,即U和L的組合。後綴可以是大寫或小寫,並且可以在任何順序。
212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 八進位沒有8 */
032UU       /* Illegal: 不能重複後綴 */
以下為其他類型的整數文字例子:
85         /* decimal(十進位) */
0213       /* octal(八進位) */
0x4b       /* hexadecimal(十六進位) */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */
字符在單引號中,ex. 'X' ,可以儲存在簡單的 char 類型。
字符可以是:
'x')'\t'):有特殊意義'\u02C0')轉義序列:
| 轉義序列 (前面都要再加個斜線) | 意思 | 
|---|---|
| |\文字 | |
| ' | '文字 | 
| " | "文字 | 
| ? | ?文字 | 
| \a | 警告or鐘 | 
| \b | Backspace | 
| \f | 換頁 | 
| \n | 換行 | 
| \r | return | 
| \t | 水平tab | 
| \v | 垂直tab | 
| \ooo | ㄧ到三位數的八進位 | 
| \xhh | 一到多位的十六進位數 | 
文字在雙引號中,字串可以包含字符、轉義序列、通用字符。
在 C 有兩種簡單的方法:
#define預處理.const關鍵字.使用#define預處理定義一個常數
#define identifier value
ex.
#import <Foundation/Foundation.h>
#define HEIGHT 30
#define WIDTH 5
int main() {
    
    int area;
    
    area = HEIGHT * WIDTH;
    
    NSLog(@"面積: %d",area);
    
    return 0;
}
2021-09-09 01:26:38.271407+0800 TestOC[65072:1959114] 面積: 150
const修飾符可以保護變量不被修改。
可以使用const來聲明常量的前綴與特定類型如下:
const type variable = value;
ex.
#import <Foundation/Foundation.h>
int main() {
    
    const int HEIGHT = 30;
    const int WIDTH = 5;
    
    int area;
    
    area = HEIGHT * WIDTH;
    
    NSLog(@"面積: %d",area);
    
    return 0;
}
2021-09-09 01:30:34.893086+0800 TestOC[65168:1964891] 面積: 150